Details

 

Building the menu

To build your own main menu, you have to edit menu.rc. See the included default menu.rc for examples and available commands.

Lines starting with # or ! are ignored.

Each menu item consists of 1..3 fields:

[command]  (label)  {data}
Menu structure  
[begin] (label) indicates the begin of the menu, label is optional.
[end] indicates the end of the menu or submenu, required.
[submenu] (label) inserts a submenu into the menu, must be closed by [end]
[include] {filename} This will continue reading items from the indicated file.
[nop] (label) inserts an inactive item with an optional label
[sep] inserts a separator (same as [nop])

 
Inserting submenus  
[path] (label) {folder} inserts an submenu with a folder from your computer as specified.
[path] (label) {folder1|folder2} merges two folders into a single menu
[insertpath] {folder} inserts any items from the specified folder into the current menu.
[stylesmenu] (label) {folder} insert a folder with style files
[stylesdir] {folder} insert stylefiles from the specified folder into the current menu.
[config] (label) inserts the ConfigMenu.
[workspaces] (label) insert the workspaces menu.
[tasks] (label) insert a menu with the currenly iconized tasks.

In addition to normal paths like {c:/program files}, a number of items may be used to indicate a special shellfolder. See shellfolders.rc for examples.

Blackbox commands  
[style] (label) {filename} insert an item to apply a new style.
[toggleplugins] (label) show/hide plugins
[aboutplugins] (label) display 'about plugins' info
[aboutstyle] (label) display 'about style' info
[reconfig] (label) re-read the configuration files
[restart] (label) reload plugins
[exit] (label) exit blackbox

 
Edit commands  
[edit] (label) {file} edit the specified 'file'
[editstyle] (label) edit the current style
[editmenu] (label) edit menu.rc
[editlugins] (label) edit plugins.rc
[editextensions] (label) edit extension.rc
[editblackbox] (label) edit blackbox.rc

The 'edit' commands use the 'blackbox.editor', which is specified in extensions.rc. For example:

blackbox.editor: plugins\bbnote\bbnote.exe
External commands  
[exec] (label) {command} run a program or execute a Broadcast message.
[run] (label) show the windows 'run' dialog

 
Shutdown commands  
[logoff] (label) logoff (*)
[suspend] (label) suspend the computer (*)
[reboot] (label) reboot the computer (*)
[shutdown] (label) shutdown the computer (*)
[lockworkstation] (label) lock workstation (*)
[hibernate] (label) hibernate (*)
[exitwindows] (label) display standard shutdown dialog

(*) You can add {-quiet} for no confirmation.

 

Backgrounds

Generally, the background can be an image or a dynamically generated gradient. The background is specified in the current style with a line that starts like:

rootCommand: bsetroot -full "backgrounds\your_image.jpg"

Click on bsetroot.exe to get some help on it.

bbLean uses bsetroot.exe to generate the background and then either displays it on it's own or let's Windows set the wallpaper, depending on the setting of 'Smart Wallpaper' in 'config -> graphics'.

Also any processing of the rootCommand may be disabled in 'config -> graphics'.

 

Desktop Margins

Desktop Margins are the area of the screen, which is not covered by maximized windows. They can be set to adjust automatically according to the placement of the bars or manually from the configuration menu.

Multiple monitors: Automatic adjustement is supposed to work indenpendently on monitors. Manual margins for 2nd monitor may be set in extensions.rc:

blackbox.desktop.2.marginLeft: ...
 

Sticky Windows

List each application to be common among all workspaces on a separate line in 'StickyWindows.ini' (located in the blackbox.exe's folder), save the changes, and 'reconfigure.'

Click 'Show Appnames' from 'config -> misc.' to get a list of currently running tasks and their internal names.

 

Set as Shell

bbLean can be run on top of explorer or installed as default shell.

To install bblean as default shell, use the install option from the included default menu or type in the commandline:

blackbox -install

On Win2k/XP you will be asked if you want to install bbLean for all users or for the current user only.

 

To reset explorer as shell, use the uninstall option from the included default menu or type in the commandline:

blackbox -uninstall

In either case, the new setting will take effect after the next reboot.

Notes:

 

CommandLine

Switches  
-help Show version and commandline info
-install Install Blackbox as default shell
-uninstall Reset Explorer as default shell
-nostartup Do not run startup programs
-rc <file> Specify alternate blackbox.rc
 

Broadcast Messages

Broadcast messages (Broams) are messages sent to Blackbox and plugins to trigger some actions.

They may be sent

[exec] (label) {@BroadcastMessage}
..., WithAction(ExecCommand), DoThis(@BBCore.ShowMenu)

Any command, which toggles a setting, can have an optional argument 'true' or 'false' to specify the new state.

 

Broadcast messages recognized by the core:

 

Menu  
@BBCore.ShowMenu show pinned menu, or main menu as default
@BBCore.ShowMenu Root show the main menu
@BBCore.ShowMenu Workspaces show workspaces menu
@BBCore.ShowMenu Icons show icons menu (minimized tasks)
@BBCore.ShowMenu Configuration show configuration menu
@BBCore.ShowMenu <path> show folder as specified
@BBCore.ShowMenu <menu.rc> display alternative menu as specified
@BBCore.HideMenu hide menus, except the pinned ones

 
Windows  
@BBCore.PrevWindow activate previous window
@BBCore.NextWindow activate next window
@BBCore.PrevWindowAllWorkspaces activate previous window (all workspaces)
@BBCore.NextWindowAllWorkspaces activate next window (all workspaces)
@BBCore.RaiseWindow bring bottom window on top
@BBCore.LowerWindow send top window to bottom
@BBCore.ShadeWindow shade window
@BBCore.CloseWindow close window
@BBCore.MinimizeWindow minimize window
@BBCore.MaximizeWindow maximize window
@BBCore.MaximizeVertical maximize window vertically
@BBCore.MaximizeHorizontal maximize window horizontally
@BBCore.RestoreWindow restore window

 
All Windows  
@BBCore.MinimizeAll minimize all windows
@BBCore.RestoreAll restore all windows
@BBCore.CascadeWindow cascade windows
@BBCore.TileVertical tile windows vertically
@BBCore.TileHorizontal tile windows horizontally

 
Workspaces  
@BBCore.LeftWorkspace previous workspace
@BBCore.RightWorkspace next workspace
@BBCore.MoveWindowLeft move window to previous workspace
@BBCore.MoveWindowRight move window to next workspace
@BBCore.GatherWindows gather all windows in the current workspace
@BBCore.AddWorkspace add another workspace
@BBCore.DelWorkspace delete the last workspace
@BBCore.EditWorkspaceNames edit the names of workspaces, separate by commata
@BBCore.SwitchToWorkspace #n switch to the specified workspace number (1..n)

 
Blackbox  
@BBCore.toggleplugins hide/show plugins (if configured to 'toggle with plugins')
@BBCore.aboutstyle display style info
@BBCore.aboutplugins display plugin info
@BBCore.reconfig reload style-settings and rc-settings
@BBCore.restart unload and reload all plugins
@BBCore.exit [-q] exit the blackbox shell. -q(uiet) = no confirmation.

 
Edit  
@BBCore.editstyle run the 'blackbox editor' on the current style
@BBCore.editmenu run the 'blackbox editor' on menu.rc
@BBCore.editplugins run the 'blackbox editor' on plugins.rc
@BBCore.editextensions run the 'blackbox editor' on extensions.rc
@BBCore.editblackbox run the 'blackbox editor' on blackbox.rc
@BBCore.edit <file> run the 'blackbox editor' on the specified file

The 'blackbox editor' is specified in extensions.rc.

 

Shutdown  
@BBCore.shutdown [-q] shutdown the computer. -q(uiet) = no confirmation.
@BBCore.reboot [-q] reboot the computer
@BBCore.logoff [-q] logoff
@BBCore.hibernate [-q] hibernate
@BBCore.suspend [-q] suspend the computer
@BBCore.lockworkstation lock workstation
@BBCore.exitwindows display standard shutdown dialog

 
Other  
@BBCore.exec <command> execute a command
@BBCore.style <stylefile> apply the specified style
@BBCore.rootCommand <command> set wallpaper
@BBCore.run display the windows 'run' dialog
@BBCore.showAppnames display a list of running tasks.
@BBCore.message <message> display message box for confirmation.

 
Configuration  
@BBCfg.plugin.load <plugin> load/unload a plugin
@BBCfg.plugin.inslit <plugin> toggle slit mode for plugin
@BBCfg.plugin.add <pathToPlugin> add a plugin to the list and load it.

Use the Show Bro@ms option in config->menus to view other broadcast messages for core configuration and plugins.

Mini Script

This is to execute multiple commands on one broadcast message. The command list must be enclosed into '[ ]'s, and single commands are separated by '|'s and may be broams or external executables.

@Script [@SomeBroam | some_prog arguments | @AnotherBroam]
 

Clock Formatting

These codes are used for formatting the clock displays, for ...

session.screen0.strftimeFormat: %#I:%M:%S %p
bbleanbar.strftimeFormat: %d %a %#H:%M
Label Value
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 - 31)
%H Hour in 24-hour format (00 - 23)
%I Hour in 12-hour format (01 - 12)
%j Day of year as decimal number (001 - 366)
%m Month as decimal number (01 - 12)
%M Minute as decimal number (00 - 59)
%p Current locale's A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 - 59)
%U Week of year as decimal number, with Sunday as first day of week (00 - 53)
%w Weekday as decimal number (0 - 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 - 53)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 - 99)
%Y Year with century, as decimal number
%z Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
%Z same as above
%% Percent sign

The # flag modifies some of the above as follows:

Format Effect
%#c Long date and time representation, appropriate for current locale.
%#x Long date representation, appropriate to current locale.
%#d,H,I,j,m,M,S,U,w,W,y,Y Remove leading zeros (if any).
%#a,A,b,B,p,X,z,Z,% # flag is ignored

Note: Check or unset the TZ environment variable on your computer to correct timezone issues.

 

Issues

Find files:
Does not work from the context menu. Hit F3 or Ctrl-F in an explorer window instead. Or use an alternate tool like Agent Ransack...
Network Places don't update:
This also does not seem to work without the explorer shell.
Delay when booting windows XP:
Use classic Logon and turn off the welcome screen.
Explorer shell loads when you wanted to open the explorer filemanager:
Install blackbox as shell again. See -> Set as Shell
Plugins conflict with gaming:
Disable 'Always On Top' and 'AutoHide' with plugins. Or hit Win+Ctrl+P to toggle plugin visibility.
Drawing issues with apps, inresponsive apps:
See bbLeanSkin's readme.txt for details on how to exclude applications from being skinned.
Titlebars flickers:
May happen with bbLeanSkin when the caption text is frequently updated. Can't be fixed.
SendTo items empty or scrambled:
Turn off 'ClearType' fonts (XP).
Lost Windows, other issues with workspaces:
Hit Win-G to 'Gather Windows' in the current workspace. If the problem continues, try 'Alternate Workspace Method' off or on, respectively. With Winamp, checkout it's 'LiteStep Virtual Desktop' options, or add it to StickyWindows.ini.
Wrong timezone with clock displays:
Either remove your system's 'TZ' environment variable or set it correctly.
Language switch hotkey does not work:
Try changing it to alt+shift, then back to ctrl+shift.
CPU usage:
Tray Icon saturation set to 255 and hue to 0 may save a some percent when there are many tray icons on the bar.
Memory usage:
bbLean uses about 1..2MB. The operating system (i.e. XP) may assign temporarily a greater amount in it's trade of speed and available resources.